Ken Bury
8/28/2017
A graph in graph theory is defined by vertices and edges. The vertices are connected by edges.
library("igraph")
mygraph <- make_empty_graph(n = 0, directed = FALSE)
mygraph <- mygraph + vertices(c("Vertex A", "Vertex B"), type = "skill")
V(mygraph)$size <- 40.0
E(mygraph)$width <- 30.0
plot(mygraph, vertex.label.cex=10, vertex.label.dist = 2.5, vertex.label.degree=pi)
mygraph <- mygraph + edge("Vertex A", "Vertex B")
V(mygraph)$size <- 40.0
E(mygraph)$width <- 30.0
plot(mygraph, vertex.label.cex=10, vertex.label.dist = 2.5, vertex.label.degree=pi)
mygraph <- mygraph + vertex("Vertex C", type = "company")
mygraph <- mygraph + edge("Vertex A", "Vertex C")
V(mygraph)$size <- 40.0
E(mygraph)$width <- 30.0
plot(mygraph, vertex.label.cex=10, vertex.label.dist = 2.5, vertex.label.degree=pi)
mygraph <- make_empty_graph(n = 0, directed = FALSE)
item_skills <- c("Skill A", "Skill F", "Skill C", "Skill H")
item_company <- c("Company A")
mygraph <- mygraph + vertices(item_skills, type = "skill")
if (length(item_skills)>1) {
for (j in 1:(length(item_skills)-1)) {
for (k in (j+1):length(item_skills)) {
mygraph <- mygraph + edge(item_skills[j],item_skills[k]) } } }
V(mygraph)$size <- 40.0
E(mygraph)$width <- 30.0
plot(mygraph, vertex.label.cex=10, vertex.label.dist = 2.5, vertex.label.degree=pi)
if (length(item_skills)>0) {
mygraph <- mygraph + vertex(item_company[1], type = "company")
for (j in 1:length(item_skills)) {
mygraph <- mygraph + edge(item_skills[j], item_company[1]) } }
V(mygraph)$size <- 40.0
E(mygraph)$width <- 30.0
plot(mygraph, vertex.label.cex=10, vertex.label.dist = 2.5, vertex.label.degree=pi)
item_skills2 <- c("Skill A", "Skill G", "Skill C", "Skill J")
item_company2 <- c("Company C")
mygraph <- mygraph + vertices(setdiff(item_skills2,item_skills), type = "skill")
if (length(item_skills2)>1) {
for (j in 1:(length(item_skills2)-1)) {
for (k in (j+1):length(item_skills2)) {
mygraph <- mygraph + edge(item_skills2[j],item_skills2[k]) } } }
V(mygraph)$size <- 40.0
E(mygraph)$width <- 30.0
plot(mygraph, vertex.label.cex=10, vertex.label.dist = 2.5, vertex.label.degree=pi)
if (length(item_skills2)>0) {
mygraph <- mygraph + vertex(item_company2[1], type = "company")
for (j in 1:length(item_skills2)) {
mygraph <- mygraph + edge(item_skills2[j], item_company2[1]) } }
V(mygraph)$size <- 40.0
E(mygraph)$width <- 30.0
V(mygraph)$color[which(V(mygraph)$type == "skill")] <- "light blue"
V(mygraph)$color[which(V(mygraph)$type == "company")] <- "gold"
plot(mygraph, vertex.label.cex=10, vertex.label.dist = 2.5, vertex.label.degree=pi)
Developing the network took about an hour on a Core i7-6700 3.4 GHz, 16 GB RAM
Over 300,000 edges were produced!!!